/*
 * Copyright 2023, Haiku, Inc. All rights reserved.
 * Distributed under the terms of the MIT License.
 */

#ifndef _LS7A2000_DRIVER_H
#define _LS7A2000_DRIVER_H

#include <OS.h>

#include "ls7a2000_private.h"

// 函数声明
status_t init_hardware();
status_t init_driver();
void uninit_driver();
const char **publish_devices();
device_hooks *find_device(const char *name);

// 全局变量
extern device_hooks gDeviceHooks;

// 预定义显示模式
const ls7a2000_display_mode kSupportedDisplayModes[] = {
    // 宽度, 高度, 刷新率, 位深, 颜色空间, 标志
    {640, 480, 60, 32, B_RGB32, DISPLAY_MODE_640_480_60HZ},
    {800, 600, 60, 32, B_RGB32, DISPLAY_MODE_800_600_60HZ},
    {1024, 768, 60, 32, B_RGB32, DISPLAY_MODE_1024_768_60HZ},
    {1280, 1024, 60, 32, B_RGB32, DISPLAY_MODE_1280_1024_60HZ},
    {1440, 900, 60, 32, B_RGB32, DISPLAY_MODE_1440_900_60HZ},
    {1680, 1050, 60, 32, B_RGB32, DISPLAY_MODE_1680_1050_60HZ},
    {1920, 1080, 60, 32, B_RGB32, DISPLAY_MODE_1920_1080_60HZ},
    {1920, 1200, 60, 32, B_RGB32, DISPLAY_MODE_1920_1200_60HZ},
    {0, 0, 0, 0, 0, 0}};

#endif // _LS7A2000_DRIVER_H